<?php

declare(strict_types=1);
namespace App\Controller;

use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\RequestMapping;
use Hyperf\HttpServer\Contract\RequestInterface;

//Controller 为满足更细致的路由定义需求而存在，使用 Controller 注解用于表明当前类为一个 Controller 类，同时需配合 RequestMapping 注解来对请求方法和请求路径进行更详细的定义。
//Hyperf 提供了多种快速便捷的 Mapping 注解，如 GetMapping、PostMapping、PutMapping、PatchMapping、DeleteMapping 等 5 种便捷的注解用于表明允许不同的请求方法。

/**
 * @Controller()
 */
class AnnotationDefineRouteController
{
    // Hyperf 会自动为此方法生成一个 /hello/world 的路由，允许通过 GET 或 POST 方式请求 (path参数用于定义访问路由,如果定义为'/hello/world'，则访问地址为：'域名/hello/world'; methods 参数用于定义可接受的请求方式)
    /**
     * @RequestMapping(path="/hello/world", methods="get,post")
     */
    public function index(RequestInterface $request)
    {
        // 从请求中获得 id 参数
        $id = $request->input('id', 1);
        return (string)$id;
    }


}